فرض کن میخوای یه دستور پخت بنویسی. به یه کاغذ (فایل خالی)، یه قلم (ویرایشگر متنی)، یه دستورالعمل (دستورات) و یه سرآشپز (شل) نیاز داری. توی لینوکس، اسکریپت هم دقیقاً همینه! این جلسه بهت یاد میده چطور اولین اسکریپت رو بنویسی و اجرا کنی!
برای نوشتن یک اسکریپت شل، به پنج ماده اصلی نیاز دارید:
#!/bin/bash) در ابتدای فایل#!/bin/bash) به سیستم میگوید که این اسکریپت را با چه مفسری اجرا کند. اگر Shebang نباشد، اسکریپت با شل پیشفرض (معمولاً Bash) اجرا میشود.
#! شروع میشود.
در Shell Scripting، هر خطی که با # شروع شود، یک کامنت (توضیح) است و توسط مفسر اجرا نمیشود. تنها استثنا، خط Shebang است که با #! شروع میشود.
توضیح: یک فایل جدید با نام test1.sh در ویرایشگر nano باز میکنیم.
کد زیر را در فایل وارد کنید:
توضیح: این اسکریپت تاریخ و لیست کاربران لاگینشده را نمایش میدهد.
فایل را ذخیره کنید (Ctrl+O در nano) و خارج شوید (Ctrl+X).
توضیح: با chmod u+x به مالک فایل (u) مجوز اجرا (x) میدهیم.
chmod +x script.sh انجام میشود.
سه روش برای اجرای اسکریپت وجود دارد:
توضیح: ./test1.sh اسکریپت را در دایرکتوری جاری اجرا میکند.
توضیح: با bash test1.sh اسکریپت را مستقیماً با مفسر Bash اجرا میکنیم (نیازی به مجوز اجرا ندارد).
توضیح: با sh test1.sh اسکریپت را با مفسر Sh اجرا میکنیم (ممکن است با Bash تفاوت داشته باشد).
./script.sh (نیاز به مجوز اجرا) یا bash script.sh (بدون نیاز به مجوز اجرا) استفاده کنید.
bash -x
با استفاده از bash -x میتوانید اسکریپت را در حالت دیباگ اجرا کنید. در این حالت، هر خط از کد قبل از اجرا نمایش داده میشود و به شما کمک میکند تا خطاها را پیدا کنید.
توضیح: خطوطی که با + شروع میشوند، دستوراتی هستند که در حال اجرا هستند. این روش برای عیبیابی اسکریپتها بسیار مفید است.
bash -x script.sh اسکریپت را در حالت دیباگ اجرا میکند و هر دستور را قبل از اجرا نمایش میدهد.
| دستور | کاربرد |
|---|---|
nano script.sh |
ایجاد/ویرایش فایل اسکریپت |
chmod u+x script.sh |
اعطای مجوز اجرا به مالک |
chmod +x script.sh |
اعطای مجوز اجرا به همه |
./script.sh |
اجرای اسکریپت (نیاز به مجوز اجرا) |
bash script.sh |
اجرای اسکریپت با Bash (بدون نیاز به مجوز) |
bash -x script.sh |
اجرای اسکریپت در حالت دیباگ |
#!/bin/bash (اولین خط)# شروع میشوند (به جز Shebang).chmod +x script.sh./script.sh یا bash script.shbash -x script.sh